﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
using Rizmar.RizmarDataSetTableAdapters;

namespace Rizmar
{
    public partial class SacadoForm : Form
    {
        Form parent;
        public enum StatusSacadoCadastro
        {
            inserindo,
            navegando,
            editando,
            novoSacado,
            mudandoAlgumaCoisinha
        }

        private StatusSacadoCadastro status;

        public SacadoForm(MainForm form)
        {
            parent = form;
            InitializeComponent();
            status = StatusSacadoCadastro.inserindo;
        }

        public SacadoForm(LancamentoForm form)
        {
            parent = form;
            InitializeComponent();
            status = StatusSacadoCadastro.novoSacado;
            novoButton.Focus();
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
        }

        public SacadoForm()
        {
            InitializeComponent();
            status = StatusSacadoCadastro.inserindo;
        }

        public void setStatus(StatusSacadoCadastro s)
        {
            status = s;
        }

        public StatusSacadoCadastro getStatus()
        {
            return status;
        }

        private bool Completo()
        {

            if (nomeTextBox.Text == string.Empty)
            {
                MessageBox.Show("O campo nome está em branco");
                nomeTextBox.Focus();
                status = StatusSacadoCadastro.mudandoAlgumaCoisinha;
                return false;
            }
            if (estadoTextBox.Text.Length > 2)
            {
                MessageBox.Show("Utilize somente abreviações para Estado");
                estadoTextBox.Focus();
                status = StatusSacadoCadastro.mudandoAlgumaCoisinha;
                return false;
            }
            if (CPFRadioButton.Checked)
            {
                if (documentoTextBox.Text.Length < 14)
                {
                    MessageBox.Show("O campo documento não está completo");
                    documentoTextBox.Focus();
                    status = StatusSacadoCadastro.mudandoAlgumaCoisinha;
                    return false;
                }
            }
            
            else
            {
                if (documentoTextBox.Text.Length < 18)
                {
                    MessageBox.Show("O campo documento não está completo");
                    documentoTextBox.Focus();
                    status = StatusSacadoCadastro.mudandoAlgumaCoisinha;
                    return false;
                }
            }
            return true;
        }

        private bool validaCpf(string cpf)
        {

            int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
            int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
            string tempCpf;
            string digito;
            int soma;
            int resto;
            cpf = cpf.Trim();
            cpf = cpf.Replace(".", "").Replace(",", "").Replace("-", "");
            if (cpf.Length != 11)
                return false;
            tempCpf = cpf.Substring(0, 9);
            soma = 0;
            for (int i = 0; i < 9; i++)
                soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i];
            resto = soma % 11;
            if (resto < 2)
                resto = 0;
            else
                resto = 11 - resto;
            digito = resto.ToString();
            tempCpf = tempCpf + digito;
            soma = 0;
            for (int i = 0; i < 10; i++)
                soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i];
            resto = soma % 11;
            if (resto < 2)
                resto = 0;
            else
                resto = 11 - resto;
            digito = digito + resto.ToString();
            return cpf.EndsWith(digito);
        }

        private bool validaCnpj(string cnpj)
        {
            int[] multiplicador1 = new int[12] { 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };
            int[] multiplicador2 = new int[13] { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };
            int soma;
            int resto;
            string digito;
            string tempCnpj;
            cnpj = cnpj.Trim();
            cnpj = cnpj.Replace(".", "").Replace(",", "").Replace("-", "").Replace("/", "");
            if (cnpj.Length != 14) return false;
            tempCnpj = cnpj.Substring(0, 12);
            soma = 0;
            for (int i = 0; i < 12; i++)
                soma += int.Parse(tempCnpj[i].ToString()) * multiplicador1[i];
            resto = (soma % 11);
            if (resto < 2)
                resto = 0;
            else
                resto = 11 - resto;
            digito = resto.ToString();
            tempCnpj = tempCnpj + digito;
            soma = 0;
            for (int i = 0; i < 13; i++)
                soma += int.Parse(tempCnpj[i].ToString()) * multiplicador2[i];
            resto = (soma % 11);
            if (resto < 2)
                resto = 0;
            else
                resto = 11 - resto;
            digito = digito + resto.ToString();
            return cnpj.EndsWith(digito);
        }

        private void numeroTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
                e.Handled = true;
            tabControl_KeyPress(sender, e);
        }

        private void tabControl_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                e.Handled = true;
                if (status != StatusSacadoCadastro.mudandoAlgumaCoisinha)
                    System.Windows.Forms.SendKeys.Send("{TAB}");
                else
                    incluirButton.Focus();
            }
        }

        private void sairButton_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void pesquisarButton_Click(object sender, EventArgs e)
        {
            if (status != StatusSacadoCadastro.novoSacado)
            {
                PesquisaSacadoForm form = new PesquisaSacadoForm(this);
                form.ShowDialog();
            }
        }

        private void novoButton_Click(object sender, EventArgs e)
        {
            if (status == StatusSacadoCadastro.editando || status == StatusSacadoCadastro.navegando)
            {
                limpaCadastro();
                status = StatusSacadoCadastro.inserindo;
                return;
            }
            if (status == StatusSacadoCadastro.inserindo || status == StatusSacadoCadastro.novoSacado || status == StatusSacadoCadastro.mudandoAlgumaCoisinha)
            {
                MessageBox.Show("Salve o cadastro atual antes de cadastrar um novo cliente!");
                return;
            }
        }

        private void limpaCadastro()
        {
            foreach (Control c in this.splitContainer1.Panel1.Controls)
                if (c is TextBox)
                    (c as TextBox).Clear();
            foreach (Control c in this.splitContainer1.Panel2.Controls)
                if (c is TextBox)
                    (c as TextBox).Clear();
            documentoTextBox.Clear();
        }

        private void incluirButton_Click(object sender, EventArgs e)
        {
            SacadoTableAdapter sta = new SacadoTableAdapter();
            RizmarDataSet.SacadoDataTable sdt = new RizmarDataSet.SacadoDataTable();

            String nome, documento, email, logradouro, complemento, bairro, cep, cidade, estado, obs;
            int? id;
            int? numero;

            if (status == StatusSacadoCadastro.inserindo || status == StatusSacadoCadastro.novoSacado || status == StatusSacadoCadastro.mudandoAlgumaCoisinha)
            {
                if (Completo())
                {
                    if (documentoValido(documentoTextBox.Text))
                    {
                        if (idTextBox.Text != "")
                            id = Convert.ToInt32(idTextBox.Text);
                        else
                            id = sta.RetornaIDMax() + 1;
                        setSacadoFields(out nome, out  documento, out email, out logradouro, out  numero, out complemento, out  bairro, out cep, out cidade, out estado, out obs);
                        if (sta.Insert(nome, documento, email, logradouro, numero, complemento, bairro, cep, cidade, obs, estado, true) > 0)
                        {

                            int i = 0;
                            TelefoneSacadoTableAdapter tsta = new TelefoneSacadoTableAdapter();
                            while (i < telefoneComboBox.Items.Count)
                            {
                                if (tsta.Insert(Convert.ToInt32(id), telefoneComboBox.Items[i].ToString(), contatoComboBox.Items[i].ToString()) > 0)
                                    i++;
                            }
                        
                            MessageBox.Show("Dados salvos com sucesso!");
                            if (status == StatusSacadoCadastro.novoSacado)
                            {
                                (parent as LancamentoForm).titulos[(parent as LancamentoForm).n_titulos - 1].sacadoTextBox.Text = nomeTextBox.Text;
                                if (CPFRadioButton.Checked)
                                {
                                    (parent as LancamentoForm).titulos[(parent as LancamentoForm).n_titulos - 1].CPFradioButton.Checked = true;
                                    (parent as LancamentoForm).titulos[(parent as LancamentoForm).n_titulos - 1].CNPJradioButton.Checked = false;
                                }
                                else
                                {
                                    (parent as LancamentoForm).titulos[(parent as LancamentoForm).n_titulos - 1].CPFradioButton.Checked = false;
                                    (parent as LancamentoForm).titulos[(parent as LancamentoForm).n_titulos - 1].CNPJradioButton.Checked = true;
                                }
                                (parent as LancamentoForm).titulos[(parent as LancamentoForm).n_titulos - 1].documentoTextBox.Text = documentoTextBox.Text;
                                this.DialogResult = DialogResult.OK;
                                this.Close();
                            }
                            status = StatusSacadoCadastro.navegando;
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Documento inválido!");
                        documentoTextBox.Focus();
                        documentoTextBox.SelectAll();
                    }
                }
            }
            if (status == StatusSacadoCadastro.editando)
            {
                id = Convert.ToInt32(idTextBox.Text);
                setSacadoFields(out nome, out  documento, out email, out logradouro, out  numero, out complemento, out  bairro, out cep, out cidade, out estado, out obs);
                int i = 0;
                TelefoneSacadoTableAdapter tsta = new TelefoneSacadoTableAdapter();
                while (i < telefoneComboBox.Items.Count)
                {
                    RizmarDataSet.TelefoneSacadoDataTable tsdt = new RizmarDataSet.TelefoneSacadoDataTable();
                    tsdt = tsta.PesquisaPorTelefone(telefoneComboBox.Items[i].ToString());
                    if (tsdt.Rows.Count <= 0)
                        tsta.Insert((int)id, telefoneComboBox.Items[i].ToString(), contatoComboBox.Items[i].ToString());
                    i++;
                }
                
                if (sta.Update(nome, documento, email, logradouro, numero, complemento, bairro, cep, cidade, estado, obs, true, (int)id) > 0)
                {
                    MessageBox.Show("Dados atualizados com sucesso!");
                    status = StatusSacadoCadastro.navegando;
                    return;
                }

     
            }
            if (status == StatusSacadoCadastro.navegando)
            {
                MessageBox.Show("Para inserir um novo cadastro aperte novo. Para alterar um cadastro já existente escolha o cadastro a ser alterado em pesquisar.");
            }
        }

        private void deletarButton_Click(object sender, EventArgs e)
        {
            SacadoTableAdapter sta = new SacadoTableAdapter();
            if (status == StatusSacadoCadastro.editando)
            {
                if (sta.ExcluiLogicamente(false, Convert.ToInt32(idTextBox.Text)) > 0)
                {
                    status = StatusSacadoCadastro.inserindo;
                    idTextBox.Enabled = true;
                    limpaCadastro();
                    MessageBox.Show("Cliente excluído com sucesso!");
                    return;
                }
            }
            else
            {
                MessageBox.Show("Para excluir um cliente, primeiro pesquise-o.");
            }
        }

        private bool documentoValido(string doc)
        {
            if (CPFRadioButton.Checked)
                return validaCpf(doc);
            else
                return validaCnpj(doc);
        }

        private void setSacadoFields(out string nome, out string documento, out string email, out string logradouro, out int? numero, out string complemento, out string bairro, out string cep, out string cidade, out string estado, out string obs)
        {
            nome = nomeTextBox.Text;
            documento = documentoTextBox.Text;
            if (emailTextBox.Text == string.Empty)
                email = null;
            else
                email = emailTextBox.Text;
            if (logradouroTextBox.Text == string.Empty)
                logradouro = null;
            else
                logradouro = logradouroTextBox.Text;
            if (bairroTextBox.Text == string.Empty)
                bairro = null;
            else
                bairro = bairroTextBox.Text;
            if (cEPTextBox.Text == string.Empty)
                cep = null;
            else
                cep = cEPTextBox.Text;
            if (cidadeTextBox.Text == string.Empty)
                cidade = null;
            else
                cidade = cidadeTextBox.Text;
            if (estadoTextBox.Text == string.Empty)
                estado = null;
            else
                estado = estadoTextBox.Text;
            if (numeroTextBox.Text == string.Empty)
                numero = null;
            else
                numero = Convert.ToInt32(numeroTextBox.Text);
            if (obsTextBox.Text == string.Empty)
                obs = null;
            else
                obs = obsTextBox.Text;
            if (complementoTextBox.Text == string.Empty)
                complemento = null;
            else
                complemento = complementoTextBox.Text;
        }

        private void cpfRadioButton_CheckedChanged(object sender, EventArgs e)
        {
            documentoTextBox.Clear();
            documentoTextBox.Focus();
        }

        private void obsTextBox_Leave(object sender, EventArgs e)
        {
            incluirButton.Focus();
        }

        private void documentoTextBox_TextChanged(object sender, EventArgs e)
        {
            if (CPFRadioButton.Checked)
            {
                if (documentoTextBox.Text.Length == 3 || documentoTextBox.Text.Length == 7)
                    documentoTextBox.AppendText(".");
                if (documentoTextBox.Text.Length == 11)
                    documentoTextBox.AppendText("-");
            }
            else
            {
                if (documentoTextBox.Text.Length == 2 || documentoTextBox.Text.Length == 6)
                    documentoTextBox.AppendText(".");
                if (documentoTextBox.Text.Length == 10)
                    documentoTextBox.AppendText("/");
                if (documentoTextBox.Text.Length == 15)
                    documentoTextBox.AppendText("-");
            }
        }

        private void documentoTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar.Equals(Convert.ToChar(Keys.Back)))
            {
                if (documentoTextBox.Text.EndsWith(".") || documentoTextBox.Text.EndsWith("-") || documentoTextBox.Text.EndsWith("/"))
                {
                    e.Handled = true;
                    documentoTextBox.Text = documentoTextBox.Text.Remove(documentoTextBox.Text.Length - 1);
                    documentoTextBox.Text = documentoTextBox.Text.Remove(documentoTextBox.Text.Length - 2);
                    documentoTextBox.Select(documentoTextBox.Text.Length, 0);
                }

            }
            if (char.IsDigit(e.KeyChar))
                if (CPFRadioButton.Checked)
                {
                    if (documentoTextBox.Text.Length == 14)
                        e.Handled = true;
                }
                else
                    if (documentoTextBox.Text.Length == 18)
                        e.Handled = true;
            numeroTextBox_KeyPress(sender, e);
        }

        private void SacadoForm_Load(object sender, EventArgs e)
        {
            this.tituloTableAdapter.Fill(this.rizmarDataSet.Titulo);
            nomeTextBox.Focus();
        }

        private void tabPage2_Enter(object sender, EventArgs e)
        {
            if (idTextBox.Text != string.Empty)
                tituloTableAdapter.PreencheSacadoEspecifico(this.rizmarDataSet.Titulo, Convert.ToInt32(idTextBox.Text));
        }

        private void SacadoForm_Shown(object sender, EventArgs e)
        {
            nomeTextBox.Focus();
        }

        private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            switch (e.ColumnIndex)
            {
                case 7:
                    setLiquidoValue();
                    setDesagioValue();
                    break;
                case 10:
                    setDiasValue();
                    setLiquidoValue();
                    setDesagioValue();
                    break;
                case 11:
                    setDiasValue();
                    setLiquidoValue();
                    setDesagioValue();
                    break;
                case 12:
                    setDiasValue();
                    setLiquidoValue();
                    setDesagioValue();
                    break;
            }
        }

        public void setDiasValue()
        {
            ClienteTableAdapter cta = new ClienteTableAdapter();
            RizmarDataSet.ClienteDataTable cdt = new RizmarDataSet.ClienteDataTable();

            int d;
            int dias;
            int dMais;
            cdt = cta.PesquisaPorID(Convert.ToInt32(idTextBox.Text));
            if (cdt.Rows.Count > 0)
            {
                d = Convert.ToInt32(cdt.Rows[0][12]);

                dMais = Convert.ToInt32(dataGridView1.CurrentRow.Cells[12].Value);

                DateTime SomaDias;
                SomaDias = Convert.ToDateTime(dataGridView1.CurrentRow.Cells[11].Value);

                if (SomaDias.DayOfWeek == DayOfWeek.Sunday)
                {
                    SomaDias = SomaDias.AddDays(1);
                }
                else
                    if (SomaDias.DayOfWeek == DayOfWeek.Saturday)
                    {
                        SomaDias = SomaDias.AddDays(2);
                    }
                SomaDias = SomaDias.AddDays(d + dMais);
                TimeSpan diferenca = SomaDias.Subtract(Convert.ToDateTime(dataGridView1.CurrentRow.Cells[10].Value));
                dias = Convert.ToInt32(diferenca.Days);
                dias = dias + 2;
                dataGridView1.CurrentRow.Cells[13].Value = Convert.ToString(dias);
            }
        }

        public void setLiquidoValue()
        {
            ClienteTableAdapter cta = new ClienteTableAdapter();
            RizmarDataSet.ClienteDataTable cdt = new RizmarDataSet.ClienteDataTable();
            double taxaMensal = 0;
            double taxaADM = 0;
            double duplicata = 0;
            cdt = cta.PesquisaPorID(Convert.ToInt32(idTextBox.Text));
            if (cdt.Rows.Count > 0)
            {
                string STtaxaMensal = Convert.ToString(cdt.Rows[0]["taxa"]).Replace('.', ',');
                string STtaxaADM = Convert.ToString(cdt.Rows[0]["adm"]).Replace('.', ',');
                string STduplicata = Convert.ToString(cdt.Rows[0]["duplicata"]).Replace('.', ',');
                taxaMensal = Convert.ToDouble(STtaxaMensal);
                taxaADM = Convert.ToDouble(STtaxaADM);
                duplicata = Convert.ToDouble(STduplicata);
            }

            int dia = Convert.ToInt32(dataGridView1.CurrentRow.Cells[13].Value);
            double jurosDia = (((taxaMensal + taxaADM) * 0.01) / 30);
            double liq = 0;
            if (dataGridView1.CurrentRow.Cells[8].Value.ToString() == "Cheque")
                liq = double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ',')) - ((double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ',')) * (double)Math.Pow((1 + jurosDia), dia)) - double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ',')));
            else
                liq = double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ',')) - ((double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ',')) * (double)Math.Pow((1 + jurosDia), dia)) - double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ','))) - duplicata;
            dataGridView1.CurrentRow.Cells[15].Value = Convert.ToString(decimal.Round(Convert.ToDecimal(liq), 2));
        }

        public void setDesagioValue()
        {
            float pis = 0, cofins = 0, cpmf = 0, iof = 0, iss = 0, adValore = 0;
            TaxaTableAdapter tta = new TaxaTableAdapter();
            RizmarDataSet.TaxaDataTable tdt = new RizmarDataSet.TaxaDataTable();
            tdt = tta.GetData();
            if (tdt.Rows.Count > 0)
            {
                pis = float.Parse(tdt.Rows[0]["pis"].ToString());
                cofins = float.Parse(tdt.Rows[0]["cofins"].ToString());
                iof = float.Parse(tdt.Rows[0]["iof"].ToString());
                iss = float.Parse(tdt.Rows[0]["iss"].ToString());
                cpmf = float.Parse(tdt.Rows[0]["cpmf"].ToString());
                adValore = float.Parse(tdt.Rows[0]["adValore"].ToString());
            }
            double desag;
            double totalAdValore = 0;
            double taxaMensal = 0;
            double taxaAdm = 0;
            double duplicata = 0;
            ClienteTableAdapter cta = new ClienteTableAdapter();
            RizmarDataSet.ClienteDataTable cdt = new RizmarDataSet.ClienteDataTable();

            cdt = cta.PesquisaPorID(Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value));
            if (cdt.Rows.Count > 0)
            {
                string STtaxaMensal = Convert.ToString(cdt.Rows[0]["taxa"]).Replace('.', ',');
                string STtaxaADM = Convert.ToString(cdt.Rows[0]["adm"]).Replace('.', ',');
                string STduplicata = Convert.ToString(cdt.Rows[0]["duplicata"]).Replace('.', ',');
                taxaMensal = Convert.ToDouble(STtaxaMensal);
                taxaAdm = Convert.ToDouble(STtaxaADM);
                duplicata = Convert.ToDouble(STduplicata);
            }

            int dia = Convert.ToInt32(dataGridView1.CurrentRow.Cells[13].Value);
            double jurosAdm = 0, jurosDesag = 0;
            jurosAdm = ((taxaAdm * 0.01) / 30);
            jurosDesag = ((taxaMensal * 0.01) / 30);
            dataGridView1.CurrentRow.Cells[22].Value = double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ',')) * (double)Math.Pow((1 + jurosAdm), dia) - double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ','));
            desag = double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ',')) * (double)Math.Pow((1 + jurosDesag), dia) - double.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString().Replace('.', ','));
            totalAdValore = adValore * (taxaAdm * desag);
            if (Convert.ToBoolean(dataGridView1.CurrentRow.Cells[17].Value) == true)
                desag = desag - (desag + totalAdValore) * ((pis + cofins) / 100) - float.Parse(dataGridView1.CurrentRow.Cells[7].Value.ToString()) * (iof / 100) - (iss / 100) * totalAdValore - (cpmf / 100) * float.Parse(dataGridView1.CurrentRow.Cells[15].Value.ToString());
            dataGridView1.CurrentRow.Cells[14].Value = Convert.ToString(decimal.Round(Convert.ToDecimal(desag), 2));
        }

        private void confirmarButton_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Tem certeza que deseja efetuar as alterações?", "Atenção", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            if (result == DialogResult.OK)
            {
                int i = 0;
                while (i < dataGridView1.RowCount)
                {
                    tituloTableAdapter.UpdateValor(Convert.ToInt32(dataGridView1.Rows[i].Cells[7].Value), Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));
                    tituloTableAdapter.UpdateDataBase(dataGridView1.Rows[i].Cells[10].Value.ToString(), Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));
                    tituloTableAdapter.UpdateVencimento(dataGridView1.Rows[i].Cells[11].Value.ToString(), Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));
                    tituloTableAdapter.UpdateD(Convert.ToInt32(dataGridView1.Rows[i].Cells[12].Value), Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));
                    tituloTableAdapter.UpdateDias(Convert.ToInt32(dataGridView1.Rows[i].Cells[13].Value), Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));
                    tituloTableAdapter.UpdateDesagio(Convert.ToDecimal(dataGridView1.Rows[i].Cells[14].Value), Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));
                    tituloTableAdapter.UpdateLiquido(Convert.ToDecimal(dataGridView1.Rows[i].Cells[15].Value), Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));
                    tituloTableAdapter.UpdateTaxaADM(Convert.ToDecimal(dataGridView1.Rows[i].Cells[22].Value), Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value));
                    i++;
                }
                MessageBox.Show("Os dados foram alterados com sucesso.");
            }
        }

        private void visualizarButton_Click(object sender, EventArgs e)
        {
            RelatorioForm novo = new RelatorioForm();
            novo.ShowDialog();
        }

        private void CNPJradioButton_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                e.Handled = true;
                System.Windows.Forms.SendKeys.Send("{TAB}");
            }
        }

        private void CPFRadioButton_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                e.Handled = true;
                System.Windows.Forms.SendKeys.Send("{TAB}");
            }
        }

        private void contatoComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            telefoneComboBox.Text = telefoneComboBox.Items[contatoComboBox.SelectedIndex].ToString();
        }

        private void telefoneComboBox_SelectedValueChanged(object sender, EventArgs e)
        {
            contatoComboBox.Text = contatoComboBox.Items[telefoneComboBox.SelectedIndex].ToString();
        }

        private void addButton_Click(object sender, EventArgs e)
        {
            int i = 0;
            bool sucesso = true;
            if (telefoneComboBox.Text != "")
            {
                while (i < telefoneComboBox.Items.Count)
                {
                    if (telefoneComboBox.Items[i].ToString() == telefoneComboBox.Text)
                        sucesso = false;
                    i++;
                }
                if (sucesso)
                {
                    telefoneComboBox.Items.Add(telefoneComboBox.Text);
                    contatoComboBox.Items.Add(contatoComboBox.Text);
                    telefoneComboBox.Text = "";
                    contatoComboBox.Text = "";
                }
                else
                    MessageBox.Show("Esse número de telefone já está cadastrado.");
            }
            System.Windows.Forms.SendKeys.Send("{TAB}");
        }

        private void cEPTextBox_TextChanged(object sender, EventArgs e)
        {
            if (cEPTextBox.Text.Length == 5)
                cEPTextBox.AppendText("-");
        }

        private void cEPTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar.Equals(Convert.ToChar(Keys.Back)))
            {
                if (cEPTextBox.Text.EndsWith("-"))
                {
                    e.Handled = true;
                    cEPTextBox.Text = cEPTextBox.Text.Remove(cEPTextBox.Text.Length - 1);
                    cEPTextBox.Text = cEPTextBox.Text.Remove(cEPTextBox.Text.Length - 2);
                    cEPTextBox.Select(cEPTextBox.Text.Length, 0);
                }

            }
            if (char.IsDigit(e.KeyChar))
                if (cEPTextBox.Text.Length == 9)
                    e.Handled = true;
            numeroTextBox_KeyPress(sender, e);
        }

        private void documentoTextBox_Leave(object sender, EventArgs e)
        {
            SacadoTableAdapter sta = new SacadoTableAdapter();
            RizmarDataSet.SacadoDataTable sdt = new RizmarDataSet.SacadoDataTable();
            if (documentoTextBox.Text != "")
            {
                sdt = sta.PesquisaPorDocumento(documentoTextBox.Text);
                if (sdt.Rows.Count > 0)
                {
                    MessageBox.Show("Já existe um sacado cadastrado com esse documento.");
                    documentoTextBox.Focus();
                    documentoTextBox.SelectAll();
                }
            }
        }

       
    }
}
